package br.com.jk.telefone;

import br.com.jk.cliente.Cliente;
import br.com.jk.cliente.ClienteRn;
import br.com.jk.empresa.Empresa;
import br.com.jk.empresa.EmpresaRn;
import br.com.jk.fornecedor.Fornecedor;
import br.com.jk.fornecedor.FornecedorRn;
import br.com.jk.util.RNException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author camilo
 */
public class TelefoneController {

  private TelefoneJDialog telJd;

  public TelefoneController(TelefoneJDialog emailJD) {
    this.telJd = emailJD;
  }

  public void salvar() {
    Telefone tel = this.criaTelefone();
    TelefoneRn eRn = new TelefoneRn();
    eRn.salvar(tel);
    telJd.dispose();
  }

  public void excluir(Telefone tel) {
    Telefone email = this.criaTelefone();
    TelefoneRn ern = new TelefoneRn();
    ern.salvar(email);
  }

  public List<Telefone> listarPorIdEntidade() {
    Fornecedor forn;
    FornecedorRn frn = new FornecedorRn();
    forn = frn.carregar(telJd.getIdEntidade());
    TelefoneRn ern = new TelefoneRn();
    List<Telefone> lstTel = ern.listarPorFornecedor(forn);
    return lstTel;
  }

  public Telefone criaTelefone() {
    Telefone tel = new Telefone();
    tel.setNumero(telJd.getJtfNumero().getText());
    tel.setPessoal(telJd.getJcbPessoal().isSelected());
    tel.setCelular(telJd.getJcbCelular().isSelected());
    tel.setNomeContato(telJd.getJtfNome().getText());
    tel.setTipoEntidade(telJd.getTipoEntidade());

    switch (telJd.getTipoEntidade()) {
      case Telefone.TELEFONE_FORNECEDOR:
        FornecedorRn frn = new FornecedorRn();
        Fornecedor forn = frn.carregar(telJd.getIdEntidade());
        tel.setFornecedor(forn);
        break;
      case Telefone.TELEFONE_EMPRESA:
        EmpresaRn empresaRn = new EmpresaRn();
        try {
          Empresa empresa = empresaRn.carregar(telJd.getIdEntidade());
          tel.setEmpresa(empresa);
        } catch (RNException ex) {
          Logger.getLogger(TelefoneController.class.getName()).log(Level.SEVERE, null, ex);
        }
        break;
      case Telefone.TELEFONE_CLIENTE:
        ClienteRn clienteRn = new ClienteRn();
        Cliente cliente = clienteRn.carregar(telJd.getIdEntidade());
        tel.setCliente(cliente);
        break;
    }

    return tel;
  }

  void cancelar() {
    telJd.dispose();
  }
}
